package cn.itcast.consumer.client;

import cn.itcast.consumer.pojo.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

/**
 * Feign需要帮我们发送一个http请求，这个请求：
 * GET http://user-service/user/{id}，其中包含的信息：
 *  请求方式：GET                通过注解：@GetMapping("/user/{id}")
 *  请求host地址：user-service   通过注解：@FeignClient("user-service")
 *  请求路径：/user/{id}         通过注解：@GetMapping("/user/{id}")
 *  请求参数：Long userId        通过注解：@PathVariable("id") Long userId
 *  返回值类型：User              通过方法返回值获取User
 * @author 虎哥
 */
@FeignClient(value = "user-service", fallback = UserClientImpl.class)
public interface UserClient {

    @GetMapping("/user/{id}")
    User queryUserById(@PathVariable("id") Long userId);
}
